//
// Created by ZYZ on 2020/6/22.
//

#include <stdio.h>
#include "test_binary_tree.h"
#include "../../include/type_binary_tree.h"
#include "../../src/binary_tree/binary_tree.h"

//最简单的 Visit 函数是：
Status PrintElement(TElemType e) {                                //输出元素e 的值
    printf("%c", e);                                              //实用时，加上格式串
    return OK;
}

void test_binary_tree() {
    BiTree biTree;
    CreateBiTree(biTree);

//    printf("PreOrderTraverse: \n");
//    PreOrderTraverse(biTree, PrintElement);                     //前序方式遍历二叉树
//
//    printf("InOrderTraverse: \n");
//    InOrderTraverse(biTree, PrintElement);                      //中序方式遍历二叉树

//    printf("PostOrderTraverse: \n");
//    PostOrderTraverse(biTree, PrintElement);                    //后序方式遍历二叉树

//    printf("LevelOrderTraverse: \n");
//    LevelOrderTraverse(biTree, PrintElement);                   //层序遍历

//    printf("InOrderTraverseWithoutRecursion1: \n");
//    InOrderTraverseWithoutRecursion1(biTree,PrintElement);      //中序遍历(非递归算法1)

//    printf("InOrderTraverseWithoutRecursion2: \n");
//    InOrderTraverseWithoutRecursion1(biTree,PrintElement);      //中序遍历(非递归算法2)

    LevelOrderPrint(biTree);
}


/**
 *  InOrderTraverseWithoutRecursion1()
 *
    请输入二叉树结点数据:
    a
    请输入二叉树结点数据:
    b
    请输入二叉树结点数据:
    #
    请输入二叉树结点数据:
    #
    请输入二叉树结点数据:
    c
    请输入二叉树结点数据:
    #
    请输入二叉树结点数据:
    #
    InOrderTraverseWithoutRecursion2:
    bac
 */